import os
import sys
import rtconfig

if os.getenv('RTT_ROOT'):
    RTT_ROOT = os.getenv('RTT_ROOT')
else:
    RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')

if os.getenv('RTT_RTGUI'):
    RTT_RTGUI = os.getenv('RTT_RTGUI')
else:
    # set the rtgui root directory by hand
    # empty string means use the RTGUI in svn
    # RTT_RTGUI = os.path.normpath(r'F:\Project\git\rt-gui\components\rtgui')
    RTT_RTGUI =''

sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
from building import *

TARGET = 'rtthread-win32.' + rtconfig.TARGET_EXT

env = Environment()

Export('RTT_ROOT')
Export('rtconfig')

libs = Split('''
winmm
gdi32
winspool
comdlg32
advapi32
shell32
ole32
oleaut32
uuid
odbc32
odbccp32
''')
definitions = Split('''
WIN32
_DEBUG
_CONSOLE
MSVC
_TIME_T_DEFINED
''')

env.Append(CCFLAGS=rtconfig.CFLAGS)
env.Append(LINKFLAGS=rtconfig.LFLAGS)
env['LIBS']=libs
env['CPPDEFINES']=definitions

# prepare building environment

objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False, remove_components=['rtgui'])
if GetDepend('RT_USING_RTGUI'):
    sdl_lib = ['SDL', 'SDLmain']
    sdl_lib_path = [os.path.abspath('SDL/lib/x86')]
    sdl_include_path = [os.path.abspath('SDL/include')]
    env.Append(LIBS=sdl_lib)
    env.Append(LIBPATH=sdl_lib_path)
    env.Append(CPPPATH=sdl_include_path)

    if RTT_RTGUI:
        objs += SConscript(os.path.join(RTT_RTGUI, 'SConscript'),
						   variant_dir='build/components/rtgui',
						   duplicate=0)
        objs = objs + SConscript(RTT_RTGUI+'/../../demo/examples/SConscript', 
				variant_dir='build/examples/gui', duplicate=0)
    else:
        objs += SConscript(os.path.join(RTT_ROOT + '/components/rtgui', 'SConscript'),
						   variant_dir='build/components/rtgui',
						   duplicate=0)
        objs = objs + SConscript(RTT_ROOT + '/examples/gui/SConscript', 
				variant_dir='build/examples/gui', duplicate=0)

if GetDepend('RT_USING_TC'):
    objs = objs + SConscript(RTT_ROOT + '/examples/kernel/SConscript', variant_dir = 'build/tc/kernel', duplicate=0)

# build program 
program = env.Program(TARGET, objs)

# end building
EndBuilding(TARGET, program)
